TSKaigiをオンラインで視聴してみた
[conf]
更新日:10/20/2018
はじめに
仕事ではWebのバックエンドエンジニアをしており、TypeScriptを使用しています。 まだまだひよっこエンジニアのため、使用していると言っても基本的なコードは書けるが言語仕様を十分に理解しているとは言い難い状態です、、笑
今回はそんなひよっこエンジニアがTSKaigiなるTypeScriptのカンファレンスをオンラインで視聴してみたので、学びと感想を残していこうと思います。 (あくまで個人の感想なので、解像度がだいぶ粗いです)
全体の感想
いきなり全体を通しての感想ですが、、、 元の知識が薄すぎて、何やら有用なことを話しているっぽいけどよくわからんかった。
version upで新しい機能が使えるようになりました!と言われても既存のversionの機能も十分に使いこなせていないのに、、、となってしまいました。
ただ、ちゃんと勉強しなきゃな!もっと開発してカンファレンスを有用にできるようにしたい!という意欲は十分に上がりました!
以下は開発意欲が上がった私が今後勉強したいという観点で記述します。
BackendとFrontendをTypeScriptで統合
TypeScriptはJavaScriptのsuper setのため、Frontend開発に主に用いられているイメージがあります。ただBackend開発にも使用できるため全ての開発をTypeScriptで行うというのも主流になっているらしい。
そういう私もTypeScriptでBackend開発をしているので、もうFrontend用の言語ではないのでしょう。
開発言語を統一するメリット
- モノレポで開発していると、情報を一箇所に集約することができる。
- バリデーションや型の情報をFrontendとBackendで共通して使用することができる。
- 一人が開発全体を担えるため、役割によっての作業量の偏りが減る。
あれ?今の現場ってFrontendもBackendもTypeScriptを使用しているが、GitHubのRepositoryは別々だし、チームが分かれているから作業量は偏っているし、情報管理はツールがいくつもあって散らかってるし。。。 何も恩恵受けていないんじゃないか?
現場のことは別で考えるとして、私自身Frontendを全くと言っていいほど理解していないんですよね。TypeScriptは普段から使ってるから問題ないとして、Reactの文法や思想は別途勉強しなきゃいけないなーと痛感しました。頑張ります。。 (別の言語を一から学ぶよりはハードルが低いからまだ頑張れそう!)
TypeScriptと関数型
関数型プログラミングは、インプットに対して適切なアウトプットを出力することで状態の遷移を表現するものだと認識しています。(おそらく間違ってますが大体の理解で、、、)
関数型プログラミングを導入することで、遷移前の状態は引数に、遷移後の状態は戻り値に表せるため、型を見ればその関数の挙動がわかる⇒堅牢性が高まる
じゃあ全部関数型で書いちゃえばええんやないか!! とはいかないんですよね、、、
なにせ関数型プログラミングの知見を持っていないから。
(さらにいうとOOPがダメっていうわけではなく、求められている要件によって使い分けるのがよいらしい。)
じゃあどうするか。domain層のビジネスロジックだけ関数型で記載して、usecaseやinfraはOOPのまま実装していくといった一部導入でも良いらしい。
これなら、、、と思ったがそうなるとビジネスロジックの切り分けなど、別の知見が必要になるから結局勉強しながら手を動かしていくしかないのかな。。
最後に
TSKaigiを視聴して一番思ったこと、「Custom Typeについてなんも理解できていない!!!」 TypeScriptを語るにあたって型は絶対につきものなので、細かな機能を理解する前に型について理解を深めないとTypeScriptを使っているとは言えないなと思いました。